package com.jielin.handling.mapper.dzzj;

import java.util.List;
import java.util.Map;

import com.jielin.handling.entity.unit.Organization;
import com.jielin.handling.entity.video.PubliceVideo;
import com.jielin.handling.entity.vo.CaseasSociationVo;
import com.jielin.handling.entity.vo.PoliceVo;
import org.apache.ibatis.annotations.Param;

import com.jielin.handling.entity.dzzj.OrgAndJYIp;
import com.jielin.handling.entity.dzzj.Video;

public interface VideoMapper {

	List<Map<String, String>> selectGrapherConfigure();// 查询记录仪服务器配置

	int insertVideoMessage(@Param("videos") List<Video> videos);// 批量插入记录仪文件信息

	int findDataIsExist(Long dataId);// 查询此条记录是否已存在

	List<Video> findRecorderFileList(@Param("policeCode") String policeCode, @Param("fileType") String fileType,
			@Param("startTime") String startTime, @Param("endTime") String endTime,
			@Param("correlationStatus") String correlationStatus, @Param("caseCode") String caseCode,
			@Param("caseName") String caseName);// 根据民警编号查询此民警记录仪上传的文件列表

	int updateRecorderFileCorrelation(@Param("status") String status, @Param("fileId") String fileId,
			@Param("caseCode") String caseCode, @Param("materialTypeId") String materialTypeId,
			@Param("suspectId") String suspectId, @Param("id") String id);

	List<Map> findCaseAVCorrelationRate(@Param("unitCode") String unitCode, @Param("status") String status);// 根据单位编号查询此单位辖区所有按键音视频关联率

	List<Map> findRateByUnitCode(@Param("unitCode") String unitCode, @Param("status") String status);// 根据单位编号查询此单位辖区所有案件的音视频关联率

	List<Map> findRateByPoliceCode(@Param("policeId") String policeId, @Param("policeCode") String policeCode,
			@Param("status") String status);// 根据民警编号查询此民警处理的案件音视频关联率

	Video findRecorderFileById(String id);// 根据记录仪文件id查询记录仪文件信息

	OrgAndJYIp findRecorderIPbyOrgNo(String orgNo);// 根据单位编号查询对应的警翼工作站ip

	String findTureOrgNoByJYOrgNo(String unitCode);// 根据警翼的单位编号查询警综的单位编号

	List<Video> selectRandomVideo(Map map);// 视频管理中心随机取出6张图片

	List<Video> selectLatesVideo(Map  map);// 最新上传----视频管理首页

	List<Video> selectRecommend(Map  map);// 首页推荐

	List<Video> selectRandomSampling(Video video);// 随机抽查

	List<Video> selectCaseVideo(Video video);// 办案视频

	List<Video> selectLawEnforcementVideo(Video video);// 执法视频

	String selectPoliceName(String policeNo);//通过民警编号查询民警的名称

	List<Video> selectPublicVideo(Video video);// 公共视频

	List<Video> selectCarVideo(Video video);// 车载视频

	List<Video> selectOtherVideo(Video video);// 其他视频

	List<Video> selectCaseByCode(String caseCode);

	int deleteLawEnforcementVideo(String id);// 删除执法视频

	int deletePublicVideo(String id);// 删除公共视频

	int deleteCaseVideo(String id);// 删除办案视频

	int deleteCarVideo(String id);// 删除车载视频

	int deleteOtherVideo(String id);// 删除其他视频

	int updateLawEnforcementVideoRelationById(Video video);// 关联执法视频

	int updatePublicVideoRelationById(Video video);// 关联公共视频

	int updateCaseVideo(Video video);// 关联办案视频

	int updateCarVideo(Video video);// 关联车载视频

	int updateOtherVideo(Video video);// 关联其他视频

	Video selectLawEnforcementVideoById(String id);// 根据id查询执法视频

	PubliceVideo selectPublicVideoById(String id);// 根据id查询公共视频

	PubliceVideo selectCaseVideoById(String id);// 根据id查询办案视频

	PubliceVideo selectCarVideoById(String id);// 根据id查询车载视频

	PubliceVideo selectOtherVideoById(String id);// 根据id查询其他视频

	int editLawEnforcementVideoRelationById(Video video);// 修改执法视频信息

	int editPublicVideoRelationById(Video video);// 修改公共视频信息

	int editCaseVideo(Video video);// 修改办案视频信息

	int editCarVideo(Video video);// 修改车载视频信息

	int editOtherVideo(Video video);// 修改其他视频信息

	int insertPublicVideo(PubliceVideo publiceVideo);// 新增公共视频

	int insertCaseVideo(PubliceVideo publiceVideo);// 新增办案视频

	int insertCarVideo(PubliceVideo publiceVideo);// 新增车载视频

	int insertOtherVideo(PubliceVideo publiceVideo);// 新增其他视频

	int insertLawEnforcementVideo(PubliceVideo publiceVideo);// 新增执法视频

	List<PoliceVo> selectPoliceByUnitcodes(String[] array,String policeCode);// 根据单位编号查询民警下拉框

	int selectPoliceManWeight(String policeCode);//查询警员权限的权重

	List<PoliceVo> selectPoliceMan(String policeCode);

	List<PoliceVo> selectUnicodeAndName();

	List<CaseasSociationVo> aVCorrelation(CaseasSociationVo vo);//根据state执法音视频关联情况列表, state=0 未关联,state=1,已关联

	List<Video> selectNoIsMapping();//查询单位编号未关联的所有警翼音视频

	int selectOrgNo(String orgNo);//查询单位表是否有此单位

	int updateOrgNo( Video vo);//更新绑定单位编号

	String  selectByPoliceNo(String policeNo);//通过民警编号查询民警的单位编号

	String selectByorgName(String organizationName);//通过单位名称查询民警的单位编号

	List<Video> selectByName(String name);//通过民警姓名查询民警的单位编号

	List<Video> selectRandomSampling1( Video video);
	List<Video> selectRandomSampling2( Video video);
	List<Video> selectRandomSampling3( Video video);
	List<Video> selectRandomSampling4( Video video);

	/**
	 * @param video
	 * @return
	 */
	Video selectVideoInfo(Video video);
}